//
//  NSString+YTAdd.h
//  tesDemo02
//
//  Created by 拓客营 on 2022/3/21.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSString (YTAdd)


/// 判断是否是中文
- (BOOL)isChinese;

///字符串判断是否为空
- (BOOL)isEmpty;

/// 计算文本高度
+ (CGFloat)heightOfString:(NSString *)string font:(UIFont *)font width:(CGFloat)width;

/// 根据高度度求宽度
/// @param text     计算的内容
/// @param height   计算的高度
/// @param font     字体大小
+ (CGFloat)getWidthWithText:(NSString *)text height:(CGFloat)height font:(CGFloat)font;

/// 去除html字符串中的标签
+ (NSString *)filterHTML:(NSString *)html;

/// 字典转字符串
+ (NSString*)dictionaryToJson:(NSDictionary *)dic;


/**
 *  计算富文本字体高度
 *
 *  @param lineSpeace 行高
 *  @param font       字体
 *  @param width      字体所占宽度
 *
 *  @return 富文本高度
 */
- (CGFloat)getSpaceLabelHeightwithSpeace:(CGFloat)lineSpeace withFont:(UIFont*)font withWidth:(CGFloat)width;



//MARK: --------------------Date相关--------------------

/// 将当前时间格式化为默认格式的字符串
+ (NSString *)stringFromNowDate;

/// 将当前日期格式化为指定格式的字符串
/// @param format 格式化
+ (NSString *)stringFromNowDateWithFormat:(NSString *)format;

/// 将日期格式化为字符串，默认格式yyyy-MM-dd HH:mm:ss
/// @param date 日期
+ (NSString *)stringFromDate:(NSDate *)date;

/// 将日期格式化为指定格式的字符串
/// @param date 日期
/// @param format 格式化
+ (NSString *)stringFromDate:(NSDate *)date format:(NSString *)format;

/// 将日期格式化为指定格式的字符串 yyyy/MM/dd
/// @param timeStamp 时间戳
+ (NSString *)stringFromTimeStamp:(NSInteger )timeStamp;

/// 将日期格式化为指定格式的字符串
/// @param timeStamp 时间戳
+ (NSString *)stringFromTimeStamp:(NSInteger )timeStamp format:(NSString *)format;

// 获取剩余天
+ (NSString *)getDaysWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余小时
+ (NSString *)getHoursWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余分
+ (NSString *)getMinutesWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余秒
+ (NSString *)getSecondsWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余 天 时 分 秒
+ (NSString *)getDayHoursMinsSecondsWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余 天:时:分:秒
+ (NSString *)getSepareDayHoursMinsSecondsWithTimeStemp:(NSInteger)remainSconds;

// 获取剩余 时 分 秒
+ (NSString *)getHoursMinsSecondsWithTimeStemp:(NSInteger)remainSconds;
//MARK: --------------------正则判断--------------------

/// 判断邮箱
- (BOOL)isAvailableEmail;

/// 判断是否为url
- (BOOL)isUrl;

//判断手机号码格式是否正确
- (BOOL)valiMobile;

/// 密码判断
- (BOOL)isPassWordLegal;

/// 判断整型
- (BOOL)isPureInt;

/// 判断纯数字
- (BOOL)isNumber;

/// 判断是否为金额
- (BOOL)isPrice;

//身份证号
-(BOOL)validateIdentityCard;

/// 判断是否为6位验证码
- (BOOL)isSMSCode;

/// 判断是否有特殊字符
- (BOOL)JudgeTheillegalCharacter;

/// 判断是否包含emoj表情
- (BOOL)stringContainsEmoji;

//MARK: --------------------字符串加密--------------------

/// 字符串转base64（加密
+ (NSString *)base64StringFromText:(NSString *)text;

/// base64转字符串（解密）
+ (NSString *)textFromBase64String:(NSString *)base64;

/// base64编码
+ (NSString *)base64EncodeString:(NSString *)string;

/// base64解码
+ (NSString *)base64DecodeString:(NSString *)string;


//MARK: --------------------转为NSData--------------------
-(NSData *)toData;


//MARK: --------------------转为JSON字符串--------------------
//将字典转换成json格式字符串,不含符号
+ (NSString *)jsonStringCompactFormatForDictionary:(NSDictionary *)dicJson;

//将数组转换成json格式字符串,不含符号
+ (NSString *)jsonStringCompactFormatForNSArray:(NSArray *)arrJson;

//将字典转换成json格式字符串,含符号,便于阅读
+ (NSString *)jsonStringPrettyPrintedFormatForDictionary:(NSDictionary *)dicJson;

//MARK: --------------------通过时间戳生成UUID--------------------
+(NSString *)uuid;

// 判断时间戳是否为今天，若为今天显示HH:mm 若不为今天显示MM-dd HH:mm
+(NSString *)configSendTimeFormatter:(NSString *)timeStamp;

// 金额处理
+(NSString *)configToMoneyString:(NSString *)oldPrice;

// 金额处理 四舍五入后，再处理金额
+(NSString *)configToMoneyDecimalNumber:(NSDecimalNumber *)oldPrice;


// html 字符串处理
+(NSString *)htmlEntityDecode:(NSString *)string;


//MD5加密
+(NSString *)hMacMD5String:(NSString *)string Key:(NSString *)keyStr;

// 字典转json字符串
+ (NSString *)convertToJsonData:(NSDictionary *)dict;


@end

NS_ASSUME_NONNULL_END
